
package net.qiqbframework.messaging;

/**
 * 拦截器链管理消息流通过下，并最终流向消息最终的处理逻辑。
 * 拦截器可以通过调用该 proceed() 方法继续通过此链进行处理。也可以直接返回终止继续调用其他拦截器。
 */
@FunctionalInterface
public interface InterceptorChain {

    /**
     * 继续执行剩余的拦截器链。
     *
     * @return 消息处理后返回的值
     * @throws Exception 剩余的拦截器或者消息处理的异常
     */
    Object proceed() throws Exception;

}
